package com.jzg.sys.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 菜单
 * </p>
 *
 * @author lzp
 * @since 2019-03-07
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("SEC_MENU")
public class SecMenu extends Model<SecMenu> {

    private static final long serialVersionUID = 1L;

    /**
     * MENU_ID
     */
    @TableId("MENU_ID")
    private String menuId;

    /**
     * 父ID
     */
    @TableField("PARENT_ID")
    private String parentId;

    /**
     * 菜单编码
     */
    @TableField("MENU_CODE")
    private String menuCode;

    /**
     * 菜单名称
     */
    @TableField("MENU_NAME")
    private String menuName;

    /**
     * 菜单链接
     */
    @TableField("MENU_URL")
    private String menuUrl;

    /**
     * 系统编码
     */
    @TableField("SYS_CODE")
    private String sysCode;

    /**
     * 系统名称
     */
    @TableField("SYS_NAME")
    private String sysName;

    /**
     * 排序码
     */
    @TableField("SORT_NO")
    private String sortNo;

    /**
     * 是否有效:0无效，1有效
     */
    @TableField("IS_VALID")
    private Boolean isValid;

    /**
     * 菜单ICON
     */
    @TableField("ICON_CLS")
    private String iconCls;

    /**
     * 路由地址
     */
    @TableField("ROUTER_PATH")
    private String routerPath;

    /**
     * 资源id
     */
    @TableField("RESOURCE_ID")
    private String resourceId;

    /**
     * 层级
     */
    @TableField("TREE_LEVEL")
    private Integer treeLevel;

    /**
     * 是否叶子
     */
    @TableField("IS_LEAF")
    private Boolean isLeaf;


    @Override
    protected Serializable pkVal() {
        return this.menuId;
    }

    private transient String roleId;
    private transient String userId;
    private transient Integer childSize;
    private transient String menuIds;
    private transient List<SecMenu> children = new ArrayList<>();
}
